In [1]:
%matplotlib inline
In [2]:
import pandas as pd
import json
In [4]:
def read_data_from_json(file):
with open(file) as json_data:
data_dict = json.load(json_data)
data_dict = data_dict['reports'][0]['data']['rows']
data = pd.DataFrame.from_dict(data_dict)
data['dimensions'] = data['dimensions'].apply(lambda x: x[0])
data['metrics'] = data['metrics'].apply(lambda x: x[0]['values'][0])
print(data)
return data
read_data_from_json('task_data/Sessions_Page.json')
dimensions metrics
0 / 5925
1 /?_hsenc=p2ANqtz-_McBb_ag9eyaYD3mJjDG7G_uB3uhg... 1
2 /?_hsenc=p2ANqtz-_ORc__Ui5VKSGvLO72LiNTFW98hg-... 1
3 /?_hsenc=p2ANqtz-_PMnaFvC1MTCPb_RghCCNcPyb6VHP... 1
4 /?_hsenc=p2ANqtz--3SZ9_TxAeV_6dUflCeBmtEy9p5-k... 1
5 /?_hsenc=p2ANqtz--5qSlXatRwmauQbFfrahRUIfDCf0S... 1
6 /?_hsenc=p2ANqtz--7jiNooHo7FlMd6hWQJ9lQ4YUTCEp... 1
7 /?_hsenc=p2ANqtz-8cXEz7dOC7R8Rn0Z1ursKJbEJXbIM... 1
8 /?_hsenc=p2ANqtz-8v6U0mczdHFIUhMyXIDy3wUfa-ZUx... 1
9 /?_hsenc=p2ANqtz-9L_dXES2vJOjXvDV1KF1GweVEyHvn... 1
10 /?_hsenc=p2ANqtz-9MN7HnoJ9kpuvsMGtK1ocWm95ICOH... 1
11 /apage 1
12 /api/v1/page/html?roomHash=611fc30b6efe07edea8... 3
13 /BYTE 5
14 /coffeawrds 1
15 /coffee 1
16 /coffeeaward 1
17 /CoffeeAwards 13
18 /coffeeawards.php 2
19 /coffeeswards 1
20 /cro 4
21 /en_us/article/google-wins-legal-battle-agains... 1
22 /f 1
23 /f?_hsenc=p2ANqtz-_1UCYA4kBE9MhrKrjFFnG8wJi39l... 1
24 /f?_hsenc=p2ANqtz-_7G__6Fu-hdAW_QDTCGsWHLFw-s0... 1
25 /f?_hsenc=p2ANqtz-_KHuFCrySSUj6owG5YovjZ72Lm9Q... 1
26 /f?_hsenc=p2ANqtz-_kpjrIf3w91oSb6OZ1ffFcixc8rD... 1
27 /f?_hsenc=p2ANqtz--EaTY5uMaCCENlHdZrqjWU87gsqI... 1
28 /f?_hsenc=p2ANqtz--Fmzrt-is6YUkQDiyPm58tfNZI4O... 1
29 /f?_hsenc=p2ANqtz--r-v1KNdidC5MRXxUbpNvKNUPZHr... 2
.. ... ...
45 /portfolio-single.html 1
46 /printer 1
47 /search?q=cache:9Se28Bsen5YJ:tmrw.co/+&cd=1&hl... 1
48 /sharebutton.to 10
49 /staging/ 5
50 /staging/2. live site/TMRW_Byte_Cafe.php 1
51 /strike 1
52 /subscribe.php 1
53 /subscriube 1
54 /tmrw_byte_cafe.php 1
55 /TMRW_Byte_Cafe.php 270
56 /TMRW_Byte_Cafe.php Croydon 1
57 /tmrw_faqs.php 1
58 /TMRW_FAQs.php 129
59 /TMRW_Get_in_touch 1
60 /TMRW_Get_in_touch.php 4
61 /TMRW_Images/TMRW_Gallery_Images/TMRW_Offices/... 2
62 /TMRW_Images/TMRW_Gallery_Images/TMRW_Offices/... 1
63 /TMRW_subscribe.php 2
64 /tmrw_the_team.php 1
65 /TMRW_the_team.php 140
66 /TMRW_trainstrike_form.php 3
67 /TMRWpeople1.php 2
68 /trainstrike 2
69 /trainstrike_form.php 1
70 /trainstrikes.php 231
71 /trainstrikes.php?inf_contact_key=37d743fb0e87... 1
72 /trainstrikes.php?inf_contact_key=dd4202a772c1... 1
73 /voteforbyte.php 79
74 /WeWork/Guardian1.jpg 1
[75 rows x 2 columns]
Out[4]:
dimensions
metrics
0
/
5925
1
/?_hsenc=p2ANqtz-_McBb_ag9eyaYD3mJjDG7G_uB3uhg...
1
2
/?_hsenc=p2ANqtz-_ORc__Ui5VKSGvLO72LiNTFW98hg-...
1
3
/?_hsenc=p2ANqtz-_PMnaFvC1MTCPb_RghCCNcPyb6VHP...
1
4
/?_hsenc=p2ANqtz--3SZ9_TxAeV_6dUflCeBmtEy9p5-k...
1
5
/?_hsenc=p2ANqtz--5qSlXatRwmauQbFfrahRUIfDCf0S...
1
6
/?_hsenc=p2ANqtz--7jiNooHo7FlMd6hWQJ9lQ4YUTCEp...
1
7
/?_hsenc=p2ANqtz-8cXEz7dOC7R8Rn0Z1ursKJbEJXbIM...
1
8
/?_hsenc=p2ANqtz-8v6U0mczdHFIUhMyXIDy3wUfa-ZUx...
1
9
/?_hsenc=p2ANqtz-9L_dXES2vJOjXvDV1KF1GweVEyHvn...
1
10
/?_hsenc=p2ANqtz-9MN7HnoJ9kpuvsMGtK1ocWm95ICOH...
1
11
/apage
1
12
/api/v1/page/html?roomHash=611fc30b6efe07edea8...
3
13
/BYTE
5
14
/coffeawrds
1
15
/coffee
1
16
/coffeeaward
1
17
/CoffeeAwards
13
18
/coffeeawards.php
2
19
/coffeeswards
1
20
/cro
4
21
/en_us/article/google-wins-legal-battle-agains...
1
22
/f
1
23
/f?_hsenc=p2ANqtz-_1UCYA4kBE9MhrKrjFFnG8wJi39l...
1
24
/f?_hsenc=p2ANqtz-_7G__6Fu-hdAW_QDTCGsWHLFw-s0...
1
25
/f?_hsenc=p2ANqtz-_KHuFCrySSUj6owG5YovjZ72Lm9Q...
1
26
/f?_hsenc=p2ANqtz-_kpjrIf3w91oSb6OZ1ffFcixc8rD...
1
27
/f?_hsenc=p2ANqtz--EaTY5uMaCCENlHdZrqjWU87gsqI...
1
28
/f?_hsenc=p2ANqtz--Fmzrt-is6YUkQDiyPm58tfNZI4O...
1
29
/f?_hsenc=p2ANqtz--r-v1KNdidC5MRXxUbpNvKNUPZHr...
2
...
...
...
45
/portfolio-single.html
1
46
/printer
1
47
/search?q=cache:9Se28Bsen5YJ:tmrw.co/+&cd=1&hl...
1
48
/sharebutton.to
10
49
/staging/
5
50
/staging/2. live site/TMRW_Byte_Cafe.php
1
51
/strike
1
52
/subscribe.php
1
53
/subscriube
1
54
/tmrw_byte_cafe.php
1
55
/TMRW_Byte_Cafe.php
270
56
/TMRW_Byte_Cafe.php Croydon
1
57
/tmrw_faqs.php
1
58
/TMRW_FAQs.php
129
59
/TMRW_Get_in_touch
1
60
/TMRW_Get_in_touch.php
4
61
/TMRW_Images/TMRW_Gallery_Images/TMRW_Offices/...
2
62
/TMRW_Images/TMRW_Gallery_Images/TMRW_Offices/...
1
63
/TMRW_subscribe.php
2
64
/tmrw_the_team.php
1
65
/TMRW_the_team.php
140
66
/TMRW_trainstrike_form.php
3
67
/TMRWpeople1.php
2
68
/trainstrike
2
69
/trainstrike_form.php
1
70
/trainstrikes.php
231
71
/trainstrikes.php?inf_contact_key=37d743fb0e87...
1
72
/trainstrikes.php?inf_contact_key=dd4202a772c1...
1
73
/voteforbyte.php
79
74
/WeWork/Guardian1.jpg
1
75 rows × 2 columns
In [5]:
completion = read_data_from_json('task_data/Goal1CompletionLocation_Goal1Completions.json')
sessions = read_data_from_json('task_data/Sessions_Page.json')
dimensions metrics
0 (entrance) 6
1 / 85
2 /portfolio-single-gallery.html 1
3 /TMRW_Byte_Cafe.php 22
4 /TMRW_FAQs.php 24
5 /TMRW_Get_in_touch.php 3
6 /TMRW_the_team.php 5
dimensions metrics
0 / 5925
1 /?_hsenc=p2ANqtz-_McBb_ag9eyaYD3mJjDG7G_uB3uhg... 1
2 /?_hsenc=p2ANqtz-_ORc__Ui5VKSGvLO72LiNTFW98hg-... 1
3 /?_hsenc=p2ANqtz-_PMnaFvC1MTCPb_RghCCNcPyb6VHP... 1
4 /?_hsenc=p2ANqtz--3SZ9_TxAeV_6dUflCeBmtEy9p5-k... 1
5 /?_hsenc=p2ANqtz--5qSlXatRwmauQbFfrahRUIfDCf0S... 1
6 /?_hsenc=p2ANqtz--7jiNooHo7FlMd6hWQJ9lQ4YUTCEp... 1
7 /?_hsenc=p2ANqtz-8cXEz7dOC7R8Rn0Z1ursKJbEJXbIM... 1
8 /?_hsenc=p2ANqtz-8v6U0mczdHFIUhMyXIDy3wUfa-ZUx... 1
9 /?_hsenc=p2ANqtz-9L_dXES2vJOjXvDV1KF1GweVEyHvn... 1
10 /?_hsenc=p2ANqtz-9MN7HnoJ9kpuvsMGtK1ocWm95ICOH... 1
11 /apage 1
12 /api/v1/page/html?roomHash=611fc30b6efe07edea8... 3
13 /BYTE 5
14 /coffeawrds 1
15 /coffee 1
16 /coffeeaward 1
17 /CoffeeAwards 13
18 /coffeeawards.php 2
19 /coffeeswards 1
20 /cro 4
21 /en_us/article/google-wins-legal-battle-agains... 1
22 /f 1
23 /f?_hsenc=p2ANqtz-_1UCYA4kBE9MhrKrjFFnG8wJi39l... 1
24 /f?_hsenc=p2ANqtz-_7G__6Fu-hdAW_QDTCGsWHLFw-s0... 1
25 /f?_hsenc=p2ANqtz-_KHuFCrySSUj6owG5YovjZ72Lm9Q... 1
26 /f?_hsenc=p2ANqtz-_kpjrIf3w91oSb6OZ1ffFcixc8rD... 1
27 /f?_hsenc=p2ANqtz--EaTY5uMaCCENlHdZrqjWU87gsqI... 1
28 /f?_hsenc=p2ANqtz--Fmzrt-is6YUkQDiyPm58tfNZI4O... 1
29 /f?_hsenc=p2ANqtz--r-v1KNdidC5MRXxUbpNvKNUPZHr... 2
.. ... ...
45 /portfolio-single.html 1
46 /printer 1
47 /search?q=cache:9Se28Bsen5YJ:tmrw.co/+&cd=1&hl... 1
48 /sharebutton.to 10
49 /staging/ 5
50 /staging/2. live site/TMRW_Byte_Cafe.php 1
51 /strike 1
52 /subscribe.php 1
53 /subscriube 1
54 /tmrw_byte_cafe.php 1
55 /TMRW_Byte_Cafe.php 270
56 /TMRW_Byte_Cafe.php Croydon 1
57 /tmrw_faqs.php 1
58 /TMRW_FAQs.php 129
59 /TMRW_Get_in_touch 1
60 /TMRW_Get_in_touch.php 4
61 /TMRW_Images/TMRW_Gallery_Images/TMRW_Offices/... 2
62 /TMRW_Images/TMRW_Gallery_Images/TMRW_Offices/... 1
63 /TMRW_subscribe.php 2
64 /tmrw_the_team.php 1
65 /TMRW_the_team.php 140
66 /TMRW_trainstrike_form.php 3
67 /TMRWpeople1.php 2
68 /trainstrike 2
69 /trainstrike_form.php 1
70 /trainstrikes.php 231
71 /trainstrikes.php?inf_contact_key=37d743fb0e87... 1
72 /trainstrikes.php?inf_contact_key=dd4202a772c1... 1
73 /voteforbyte.php 79
74 /WeWork/Guardian1.jpg 1
[75 rows x 2 columns]
In [6]:
data = completion.merge(sessions, on='dimensions')
data.columns = ['Page','Goal1Completions','Sessions']
data[['Goal1Completions','Sessions']] = data[['Goal1Completions','Sessions']].apply(pd.to_numeric)
data['Conversion rate,%'] = data.apply(lambda row: 100*row['Goal1Completions']/float(row['Sessions']), axis=1)
data = data.sort_values(by='Conversion rate,%', ascending=False)
data
Out[6]:
Page
Goal1Completions
Sessions
Conversion rate,%
4
/TMRW_Get_in_touch.php
3
4
75.000000
1
/portfolio-single-gallery.html
1
2
50.000000
3
/TMRW_FAQs.php
24
129
18.604651
2
/TMRW_Byte_Cafe.php
22
270
8.148148
5
/TMRW_the_team.php
5
140
3.571429
0
/
85
5925
1.434599
In [7]:
max_conv_rate = data.ix[data['Conversion rate,%'].idxmax()]
print('The best converting page on your site is \'%s\' with conversion rate %.2f%%.' %(max_conv_rate['Page'], max_conv_rate['Conversion rate,%']))
The best converting page on your site is '/TMRW_Get_in_touch.php' with conversion rate 75.00%.
In [8]:
data.set_index('Page')['Conversion rate,%'].plot.bar(rot=40, legend=True)
Out[8]:
<matplotlib.axes._subplots.AxesSubplot at 0x8d7fcd0>
In [ ]:
Content source: datahac/jup
Similar notebooks: